iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Modern Web

以 React 為主的那些前端事系列 第 21

Day 21 - Memorized Hook: useCallback

  • 分享至 

  • xImage
  •  

如果有錯誤,歡迎留言指教~ Q_Q 沒寫完啦

useCallback

回傳一個 memoized 的 callback。

記住 function instance 的 useCallback,做快取加速用途

const memoizedCallback = useCallback(
  () => {
    doSomething(a, b);
  },
  [a, b],
);

傳遞一個 inline callback 及依賴 array。

  1. 僅在依賴改變時才會更新
  2. 這些 child component 依賴於引用相等性來防止不必要的 render(例如,shouldComponentUpdate)

useCallback 其實就等於回傳一個 function 的 useMemo

useCallback(fn, deps) 
useMemo(() => fn, deps)

使用時機: 大部分不用

在搭配 PureComponent 等、或是提供多個 useEffect 時使用

ref:

  1. https://zh-hant.reactjs.org/docs/hooks-reference.html#usecallback

上一篇
Day 20 - React.memo
下一篇
Day 22 - Memorized Hook: useMemo
系列文
以 React 為主的那些前端事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言